﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Comissoes.Utilities;

namespace Comissoes.Models
{
    public class ListasModel
    {
        public LISTAS lista { get; set; }

        List<string> erros;

        public ListasModel(Int32? id)
        {
            xcontEntities db = new xcontEntities();

            if (id.HasValue && db.LISTAS.Any(t => t.COD_LISTA == id))
            {
                this.lista = db.LISTAS.First(t => t.COD_LISTA == id);
            }
            else
            {
                this.lista = new LISTAS { VALIDADE_INICIO_LISTA = DateTime.Now };
            }
        }

        public List<string> UpdateValidate(FormCollection form)
        {
            erros = new List<string>();

            if (string.IsNullOrEmpty(form["DESC_LISTA"]))
                erros.Add("É necessário informar a descrição da lista.");

            if (string.IsNullOrEmpty(form["VALIDADE_INICIO_LISTA"]))
                erros.Add("É necessário informar a data inicial da lista.");

            return erros;
        }

        public List<string> Update( FormCollection form)
        {
            xcontEntities db = new xcontEntities();
            
            erros = new List<string>();

            try
            {
                if (this.lista.COD_LISTA == 0)
                {
                    db.AddToLISTAS(this.lista);
                }

                else
                {
                    this.lista = db.LISTAS.FirstOrDefault(t => t.COD_LISTA == this.lista.COD_LISTA);
                }

                this.lista.DESC_LISTA = form["DESC_LISTA"];

                if (!string.IsNullOrEmpty(form["VALIDADE_INICIO_LISTA"]))
                {
                    this.lista.VALIDADE_INICIO_LISTA = DateTime.Parse(form["VALIDADE_INICIO_LISTA"] + " " + form["HORA_INICIO_LISTA"]);
                }
                if (!string.IsNullOrEmpty(form["VALIDADE_TERMINO_LISTA"]))
                {
                    this.lista.VALIDADE_INICIO_LISTA = DateTime.Parse(form["VALIDADE_TERMINO_LISTA"] + " " + form["HORA_TERMINO_LISTA"]);
                }

                db.SaveChanges();
            }
            catch (Exception ex)
            {
                erros.Add(ex.Message);
                if (ex.InnerException != null)
                    erros.Add(ex.InnerException.Message);
            }

            return erros;
        }
    }
}
